---
title: lint-staged
description: Az Ultracite automatikus futtatása a Git staging területére felvett fájlokon a lint-staged segítségével
---

Az Ultracite zökkenőmentesen integrálódik a [lint-staged](https://github.com/okonet/lint-staged) segítségével, hogy automatikusan formázza és lintelje a kódot minden commit előtt. Ez biztosítja, hogy csak tiszta, megfelelően formázott kód kerüljön a repository-ba.

## Mi az a lint-staged?

A lint-staged egy olyan eszköz, amely linereket és formázókat futtat a staging-re felvett Git fájlokon. Különösen hasznos, mert:

- Csak azokat a fájlokat dolgozza fel, amelyeket ténylegesen commitolnak
- Megakadályozza, hogy rosszul formázott kód kerüljön a repository-ba
- Gyorsan fut, mivel csak a változtatott fájlokat ellenőrzi
- Tökéletesen integrálódik a Git hookokkal

## Hogyan használja az Ultracite a lint-staged-et

Ha futtatja a `npx ultracite init` parancsot, és kiválasztja a lint-staged opciót, az Ultracite automatikusan:

1. **Telepíti a lint-staged csomagot** fejlesztési függőségként
2. **Létrehozza vagy frissíti** a lint-staged konfigurációját
3. **Beállítja a formázót**, hogy a releváns fájltípusokon fusson

Az alapértelmezett konfiguráció a `npx ultracite fix` parancsot futtatja ezekre a fájltípusokra:
- JavaScript/TypeScript fájlok (`.js`, `.jsx`, `.ts`, `.tsx`)
- JSON fájlok (`.json`, `.jsonc`)
- CSS fájlok (`.css`, `.scss`)
- Markdown fájlok (`.md`, `.mdx`)

## Támogatott konfigurációs formátumok

Az Ultracite lint-staged integrációja támogatja az összes szabványos lint-staged konfigurációs formátumot:

### package.json

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
  }
}
```

### .lintstagedrc.json

```json title=".lintstagedrc.json"
{
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
}
```

### .lintstagedrc.js (CommonJS)

```javascript title=".lintstagedrc.js"
module.exports = {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.mjs (ES Modules)

```javascript title=".lintstagedrc.mjs"
export default {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.yaml

```yaml title=".lintstagedrc.yaml"
"*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}":
  - 'npx ultracite fix'
```

## Intelligens konfiguráció-összefésülés

Ha már van lint-staged konfigurációja, az Ultracite:

- **Észleli** a meglévő konfigurációs formátumot
- **Egyesíti** az Ultracite szabályait a meglévő szabályokkal
- **Megőrzi** az egyedi konfigurációkat
- **Frissíti** a fájlt helyben

Ez azt jelenti, hogy nyugodtan futtathatja a `npx ultracite init` parancsot még akkor is, ha már be van állítva a lint-staged.

## Hogyan működik

1. **Pre-commit hook**: a lint-staged minden commit előtt fut a Husky segítségével
2. **Fájlérzékelés**: csak a mintáknak megfelelő, staging-re felvett fájlok kerülnek feldolgozásra
3. **Formázási parancs**: a `npx ultracite fix` fut minden illeszkedő fájlon
4. **Automatikus javítás**: a Biome lehetőség szerint automatikusan kijavítja a problémákat
5. **Újra-staging**: a javított fájlok automatikusan újra staging-re kerülnek commitoláshoz

## Kézi konfiguráció

Ha testre kell szabnia a lint-staged beállítását, a inicializálás után módosíthatja a konfigurációt:

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": ["npx ultracite fix", "npm run test:unit"],
    "*.{json,jsonc}": ["npx ultracite fix"],
    "*.{css,scss}": ["npx ultracite fix", "npm run test:styles"],
    "*.{md,mdx}": ["npx ultracite fix"]
  }
}
```

## Parancsok integrációja

A lint-staged integráció az Ultracite parancsszerkezetével működik:

- **`npx ultracite fix`**: Biome futtatása automatikus javítással (lint-staged által használt)
- **`npx ultracite check`**: Biome futtatása automatikus javítás nélkül (CI/kézi ellenőrzésekhez)

## Hibaelhárítás

### Konfiguráció nem található
Ha hibákat kap a hiányzó lint-staged konfiguráció miatt:

```bash
npx ultracite init  # Re-run initialization
```

### ESM/CommonJS problémák
Az Ultracite automatikusan észleli a projekt típusát és a megfelelő konfigurációs formátumot hozza létre:

- **ESM projektek** (ha a package.json-ban `"type": "module"` szerepel) `.mjs` konfigurációkat kapnak
- **CommonJS projektek** `.cjs` konfigurációkat kapnak
- **Visszaesés**: `.lintstagedrc.json` jön létre, ha a modul detektálás meghiúsul

### Meglévő konfigurációs ütközések
Ha összetett meglévő konfigurációi vannak, előfordulhat, hogy manuálisan kell egyesítenie:

1. Készítsen biztonsági másolatot a meglévő lint-staged konfigurációról
2. Futtassa a `npx ultracite init` parancsot
3. Manuálisan olvassa össze a megőrizni kívánt egyedi szabályokat

## Legjobb gyakorlatok

1. **Tartsa gyorsan**: csak a lint-staged-ben szükséges ellenőrzéseket futtassa
2. **Használjon specifikus mintákat**: célozza meg csak azokat a fájlokat, amelyeket feldolgozni kell
3. **Kombinálja CI-vel**: használja a lint-staged-et gyors lokális ellenőrzésekhez, a teljes lintelést pedig CI-ben
4. **Tesztelje a beállítást**: készítsen egy teszt commitot, hogy megbizonyosodjon róla, minden működik

## Kapcsolódó

- [Husky integráció](/integration/husky) - Git hookok beállítása
- [Konfiguráció](/configuration) - Biome konfigurációs opciók
- [Beállítás](/setup) - Projekt kezdeti beállítása